<!DOCTYPE html>
<html lang="zh-cn" color-mode="light">

  <head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta name="keywords" content="" />
  <meta name="author" content="郁涛丶" />
  <meta name="description" content="" />
  
  
  <title>
    
      编译原理Note 
      
      
      |
    
     郁涛丶&#39;s Blog
  </title>

  
    <link rel="apple-touch-icon" href="/images/favicon.png">
    <link rel="icon" href="/images/favicon.png">
  

  <!-- Raleway-Font -->
  <link href="https://fonts.googleapis.com/css?family=Raleway&display=swap" rel="stylesheet">

  <!-- hexo site css -->
  
<link rel="stylesheet" href="/css/color-scheme.css">
<link rel="stylesheet" href="/css/base.css">
<link rel="stylesheet" href="//at.alicdn.com/t/font_1886449_67xjft27j1l.css">
<link rel="stylesheet" href="/css/github-markdown.css">
<link rel="stylesheet" href="/css/highlight.css">
<link rel="stylesheet" href="/css/comments.css">

  <!-- 代码块风格 -->
  
    
<link rel="stylesheet" href="/css/figcaption/mac-block.css">

  

  <!-- jquery3.3.1 -->
  
    <script defer type="text/javascript" src="/plugins/jquery.min.js"></script>
  

  <!-- fancybox -->
  
    <link href="/plugins/jquery.fancybox.min.css" rel="stylesheet">
    <script defer type="text/javascript" src="/plugins/jquery.fancybox.min.js"></script>
  
  
<script src="/js/fancybox.js"></script>


  

  <script>
    var html = document.documentElement
    const colorMode = localStorage.getItem('color-mode')
    if (colorMode) {
      document.documentElement.setAttribute('color-mode', colorMode)
    }
  </script>
<!-- hexo injector head_end start -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css">

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/hexo-math@4.0.0/dist/style.css">
<!-- hexo injector head_end end --><meta name="generator" content="Hexo 5.4.0"><link rel="alternate" href="/atom.xml" title="郁涛丶's Blog" type="application/atom+xml">
</head>


  <body>
    <div id="app">
      <div class="header">
  <div class="avatar">
    <a href="/">
      <!-- 头像取消懒加载，添加no-lazy -->
      
        <img src="/images/avatar.png" alt="">
      
    </a>
    <div class="nickname"><a href="/">Ghostasky</a></div>
  </div>
  <div class="navbar">
    <ul>
      
        <li class="nav-item" data-path="/">
          <a href="/">Home</a>
        </li>
      
        <li class="nav-item" data-path="/archives/">
          <a href="/archives/">Archives</a>
        </li>
      
        <li class="nav-item" data-path="/categories/">
          <a href="/categories/">Categories</a>
        </li>
      
        <li class="nav-item" data-path="/tags/">
          <a href="/tags/">Tags</a>
        </li>
      
        <li class="nav-item" data-path="/about/">
          <a href="/about/">About</a>
        </li>
      
    </ul>
  </div>
</div>


<script src="/js/activeNav.js"></script>



      <div class="flex-container">
        <!-- 文章详情页，展示文章具体内容，url形式：https://yoursite/文章标题/ -->
<!-- 同时为「标签tag」，「朋友friend」，「分类categories」，「关于about」页面的承载页面，具体展示取决于page.type -->


    <!-- LaTex Display -->

  
    <script async type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
  
  <script>
    MathJax = {
      tex: {
        inlineMath: [['$', '$'], ['\\(', '\\)']]
      }
    }
  </script>


        
            
                <!-- clipboard -->

  
    <script async type="text/javascript" src="/plugins/clipboard.min.js"></script>
  
  
<script src="/js/codeCopy.js"></script>



                    
                        
                                
                                        
                                                
                                                        
                                                            <!-- 文章内容页 url形式：https://yoursite/文章标题/ -->
                                                            <div class="container post-details" id="post-details">
                                                                <div class="post-content">
                                                                    <div class="post-title">
                                                                        编译原理Note
                                                                    </div>
                                                                    <div class="post-attach">
                                                                        <span class="post-pubtime">
        <i class="iconfont icon-updatetime" title="Update time"></i>
        2021-12-01
      </span>

                                                                        <span class="post-pubtime"> 本文共22字 </span>

                                                                        <span class="post-pubtime">
        大约需要1min
      </span>

                                                                        
                                                                                    <span class="post-categories">
        <i class="iconfont icon-bookmark" title="Categories"></i>
        
        <span class="span--category">
          <a href="/categories/Technology/" title="Technology">
            <b>#</b> Technology
          </a>
        </span>
                                                                                    
                                                                                        </span>
                                                                                        
                                                                            <span class="post-tags">
        <i class="iconfont icon-tags" title="Tags"></i>
        
        <span class="span--tag">
          <a href="/tags/OS/" title="OS">
            <b>#</b> OS
          </a>
        </span>
                                                                            
                                                                                </span>
                                                                                
                                                                    </div>
                                                                    <div class="markdown-body">
                                                                        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="风中传来苦咸，是悔恨的气味吗?" data-whm="抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.">
  <script id="hbeData" type="hbeData" data-hmacdigest="652703295605f8a413c967b8cedb4f11c1630871781b2db01b12eaab793133c9">994f9c06d970fb4aead1c76eb2a7916ef4db5aadaf7c5969188681a8504f5f2a2de4a2ba0dd1c0880e04d95b51d64a79647d8fa86b8944be21b4376a3b53b73df4ecb0457163144b9562c912c026d40bde9d779a2f0a4af0714b4a41185fb92a91b411e0c7e7844cfa86f8eb942e1d543325bd8f8d5c1275554f6824e4675dc712dffca79a4fb2017632b9d24f2c26b321855e8c15c923e4cf1036be7a8e0b54fc1b93ff9b023fff6964a5d87833363f0ea65d9e0e1cc02e543d4f68823a0cb7d9a3748efdeba9be2369de526f4430fdfae291ba48c3658e8b7d5c4d561d673510d0aaf09809e3a2ff8d3bcb0d4c98983a8ee0a8eeef9051fe81770a1417b2c94c044a2d8d6a34953cc60bb99f5562a2e60f4d31a1182191609da64a46151fe5a865a9212dc0f42b1513d443c87077b59c0aed963a777eafa157885c2fc6ab6b648e63ad0d3a5e354dd1c9f1ac9eb4f8d08408c83ac92b7e3ed7f965eeb1fb63fcaf26ed9dc56cdb28e4b4957efa9f58703c5175ff11a422a8afa1a2d772fe38e90c4deb4ee33a58de24a7c676c897ed9388f922c14788f12362b2010393d29c4b80b8c5954b2f63450432b2d91638e0f7e1bdfa43d24ada2602afa825ecffcf9f22673d26418f5db438f108a1dab8d6fcf22d909e5bcbad31e3c6cb4fca1e61d179f9e9d21e9693f8c18cbe26162c16b80e401bfae3b19cd29addd296af6c1ab1af7c6d9e83f4091f17f1a394c51a206766e18a0d94f338dfb0aed1921f7396c20158970bc150c972eb47b1641fd0c3971ef916fe527e3ca2f02a8feb9be4037d4a16ce2053241bd0c46dc39a64918fe8e697afe02a05f71a5434fc83fdaa434647e101a3253ef7b29cb2f593e0ef442fd6845dec8ed7a61d15d78c1ac5aa245e6486566cfda0e519a3bd58f0b7f67c7d9eeb2f35f72a4249ee2034155d77f531a0582ab839767dfc57c50e1b031939ecff5e1c9037fed49fb1d9d1965110bd18f441a7a051bc84796ed366b301d34e55f9b54f699fab7be6b23a3eb859249fa1c67cbc8de5ede313de879f14a1e9d4d301651ca859dd7c2f8df327252ed8fb8403bdd114699b168214ccb4413be79c718d5a48d15ec8d9ffa35f15d0710ab935f63aa63e182f8ad4af77bcc3781c8247c4fde304ddb013ec7d1dacffadb1df4022503ef6490beb159833731af98267bee3b21d3e0aee928e1666979aecbbc0fdf85d704e69cc09a6dd7919f8cefc09be9d6b06d1ebb8d73576127f477ead9f2b935163f647db720c8bdd70e38195968c7162392434db53f1708964c0efb55e83e0c547ce25e031be31a3e9eea7ffdbd294a15323827877e08a3f6592ccc1af3603e02cbcc2975411d0a71b984ddcc30b61bf0203c9b3f8a52d5cf3d77a099618a3cd5e002721661c9807ab2f3cffc970d322ca143aa44c19ca7a2ca86485c8f9fd31beca6876c6e7c68110fa6e8b678fc066909a3f3097985ff8ac93dce3f79237c9b724ccec129240919bdcce0deb1b569264d14f4cb9e5201d2276d3ee77768622f8aabfab83eb8a165aebbb9b374889578307789696b0a73f98eeeb68452ff616b253be0208fdc5ee75a8841a3f4a9667da8a8eadecaa43aded5ee3feaf0483b9fa39ac33422842303ebea6cfe468b58f6cc0baf0f89a7165da7588b00ee4e49bc3aa24f8e5430aaf80425891c8a8b97bb48b5449b3eae7de3b80dffc687336b962237c98026044d6fd4d79f9571b63408fe555d374a9ead76838008e8d8b1204a9a8832f7023249d589dbc098aba499fd93e5e6b26b4d0fe0a79d1e613091f68e250ecb57c4d46814308057346c471292bc4477728f4ec7033e92c920e017e2f60069fcbea402e14e81f5c224331fdf8f72338c0edfd284d03a2aab45249117e93ffd723d4b423871ff191a010027c0692020bd49cbd46a9958888c317fd697b29e2348fa579b6512a67a3336f201ecb4bb27aac1dbf153c875d37702c400788a7604f1a4b5caf3f74e6c1eb374c7197e921a32f98807780322ffe8c5c60a680c9ba123112e7f7f793fc05c6ccdc74e9d40f2e44db9c09156165a04dee9fe02d921cb2b490d574e1d412c240e94c2a0d0ad8b19652ae17a9964d985d6615e2af8e0457ff17647b93e14e06c7510a358934eb1f5458b1c1aed1a1b6c369f56e25c6352c898d450ec9c3187c9e18c2aed64a49c48bbcfa5397afe0a86c4b36c63ea465d03793023a23e5f08872ddb5c730aea21de746f9f607367e618f4a2a0c3236429325b34e0ca2ed47c909f9fc6d075d58dc8e2232cf31e9462744099068effd2e60b23462c29a54adcfa1f72498ce38d472608cad3346fb0040e3442e84667cfa0b47eebfc650c624171bd264a37c77dcee43e3d106be33b3d37724b76283dfcefd8d4e9e863ec3f31741f2de186272969175d547d99545a9d026086b2c2a29e5ef3a7e9cfcddc94d4624243c66eaaf41e83405f15482a5c14b3e9ef8c7eb2171ea9758ae2949f36b08278c92d346cdaa40943878d8fb036b27f58d1701de048617585ae440b32a8d1928ef302ba7bf5167d19abdda0213560b2409adce307656991745cbe8df0dd86f919603e097883316145788e1c25b79617c56209d9cfa7a1bae53eeb277663330d0c52d05e99a7491bd9d77a76d64fb79f6909a78a8a30b4718d37d3afa5fad184e4ca755de4dfe176b1e0542703fc15dfa101e65ff16fbc64ed9067fe0b8141f0d89c4932469da2751db22fabbe6d3cc01f4295f0b29514fc2c52718c23aab2a41869b3f21fbab12fc627242254cd1c04c62310f7e6ca71ec829c36e07c62f3a814789688f02d3c030e8f604f7cf6499644823efaf8b9097220d91e6d47ad5354d7b4338bd1fa88f46e3b4948de09143b72563f12bd15e76998dc617bae298e15113c485cdd6f6a762f2100ccc5993641ac9dcb05dd10821aa13331d54138fa3682e04d26401c00743252bbcb385177b563ee975d9a898f2f902b4a835c30fa273e81dc3065755c021fc82037c175064032d168448e1041135bcfb8b527d999f29cf4bec5795b0e38066ba4bf7b18c5d8d8fd26593d3693fe5c7075f9893186d06d50816003219bc8ea4438402a72ec3d2ad058dbbaa94cec36a2b0db61c6ba197166509dbea08877a59ff71fea5f9fca1b76f3e2a2ed94553823fee1582cc49fd1be0a7c8471df10cc59b2755514ab1c2f3d79179d5a4768b61c7725b2a5fb3e054db6962db28dc44682dd29f9fc7ba6c33</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-wave">
      <input class="hbe hbe-input-field hbe-input-field-wave" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-wave" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-wave">坟墓里寂静无比，埋葬你的是所有你没说出口的话</span>
      </label>
      <svg class="hbe hbe-graphic hbe-graphic-wave" width="300%" height="100%" viewBox="0 0 1200 60" preserveAspectRatio="none">
        <path d="M0,56.5c0,0,298.666,0,399.333,0C448.336,56.5,513.994,46,597,46c77.327,0,135,10.5,200.999,10.5c95.996,0,402.001,0,402.001,0"></path>
      </svg>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">
                                                                    </div>
                                                                    
                                                                        <div class="prev-or-next">
                                                                            <div class="post-foot-next">
                                                                                
                                                                                    <a href="/2021/11/15/%E9%99%87%E5%8E%9F%E6%88%98%E7%96%AB2021%E9%83%A8%E5%88%86wp/" target="_self">
                                                                                        <i class="iconfont icon-chevronleft"></i>
                                                                                        <span>Prev</span>
                                                                                    </a>
                                                                                    
                                                                            </div>
                                                                            <div class="post-attach">
                                                                                <!-- <span class="post-pubtime">
              <i class="iconfont icon-updatetime" title="Update time"></i>
              2021-12-01
            </span> -->

                                                                                
                                                                                            <span class="post-categories">
          <!-- <i class="iconfont icon-bookmark" title="Categories"></i> -->
          
          <!-- <span class="span--category">
            <a href="/categories/Technology/" title="Technology">
              <b>#</b> Technology
            </a>
          </span> -->
                                                                                            
                                                                                                </span>
                                                                                                
                                                                                    <span class="post-tags">
          <!-- <i class="iconfont icon-tags" title="Tags"></i> -->
          
          <!-- <span class="span--tag">
            <a href="/tags/OS/" title="OS">
              <b>#</b> OS
            </a>
          </span> -->
                                                                                    
                                                                                        </span>
                                                                                        
                                                                            </div>
                                                                            <div class="post-foot-prev">
                                                                                
                                                                                    <a href="/2021/12/08/BUU-PWN-0x50-0x5F/" target="_self">
                                                                                        <span>Next</span>
                                                                                        <i class="iconfont icon-chevronright"></i>
                                                                                    </a>
                                                                                    
                                                                            </div>
                                                                        </div>
                                                                        
                                                                </div>
                                                                
  <div id="btn-catalog" class="btn-catalog">
    <i class="iconfont icon-catalog"></i>
  </div>
  <div class="post-catalog hidden" id="catalog">
    <div class="title">Contents</div>
    <div class="catalog-content">
      
        <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#P2%E7%BC%96%E8%AF%91%E7%B3%BB%E7%BB%9F%E7%BB%93%E6%9E%84"><span class="toc-text">P2编译系统结构</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#P3%E8%AF%8D%E6%B3%95%E5%88%86%E6%9E%90%E6%A6%82%E8%BF%B0"><span class="toc-text">P3词法分析概述</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#P4%E8%AF%AD%E6%B3%95%E5%88%86%E6%9E%90"><span class="toc-text">P4语法分析</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#P5%E8%AF%AD%E4%B9%89%E5%88%86%E6%9E%90"><span class="toc-text">P5语义分析</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#P1-Introduction"><span class="toc-text">P1 Introduction</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#P2-Structure-of-a-compiler"><span class="toc-text">P2 Structure of a compiler</span></a></li><li class="toc-item toc-level-1"><a class="toc-link"><span class="toc-text"></span></a></li></ol>
      
    </div>
  </div>

  
<script src="/js/catalog.js"></script>




                                                                    
                                                                        <div class="comments-container">
                                                                            







                                                                        </div>
                                                                        
                                                            </div>
                                                            
        
<div class="footer">
  <div class="social">
    <ul>
      
        <li>
          <a title="github" target="_blank" rel="noopener" href="https://github.com/Ghostasky">
            <i class="iconfont icon-github"></i>
          </a>
        </li>
      
        <li>
          <a title="twitter" target="_blank" rel="noopener" href="https://twitter.com/ghostasky">
            <i class="iconfont icon-twitter"></i>
          </a>
        </li>
      
    </ul>
  </div>
  
    
    <div class="footer-more">
      
        <a target="_blank" rel="noopener" href="https://github.com/Ghostasky">怕什么真理无穷，进一寸有进一寸的欢喜。</a>
        
    </div>
  
    
    <div class="footer-more">
      
        <a target="_blank" rel="noopener" href="https://github.com/zchengsite/hexo-theme-oranges">Copyright © 2022 Oranges</a>
        
    </div>
  
    
    <div class="footer-more">
      
        <a target="_blank" rel="noopener" href="https://github.com/zchengsite/hexo-theme-oranges">Theme by Oranges | Powered by Hexo</a>
        
    </div>
  
</div>

      </div>

      <div class="tools-bar">
        <div class="back-to-top tools-bar-item hidden">
  <a href="javascript: void(0)">
    <i class="iconfont icon-chevronup"></i>
  </a>
</div>


<script src="/js/backtotop.js"></script>



        
  <div class="search-icon tools-bar-item" id="search-icon">
    <a href="javascript: void(0)">
      <i class="iconfont icon-search"></i>
    </a>
  </div>

  <div class="search-overlay hidden">
    <div class="search-content" tabindex="0">
      <div class="search-title">
        <span class="search-icon-input">
          <a href="javascript: void(0)">
            <i class="iconfont icon-search"></i>
          </a>
        </span>
        
          <input type="text" class="search-input" id="search-input" placeholder="Search...">
        
        <span class="search-close-icon" id="search-close-icon">
          <a href="javascript: void(0)">
            <i class="iconfont icon-close"></i>
          </a>
        </span>
      </div>
      <div class="search-result" id="search-result"></div>
    </div>
  </div>

  <script type="text/javascript">
    var inputArea = document.querySelector("#search-input")
    var searchOverlayArea = document.querySelector(".search-overlay")

    inputArea.onclick = function() {
      getSearchFile()
      this.onclick = null
    }

    inputArea.onkeydown = function() {
      if(event.keyCode == 13)
        return false
    }

    function openOrHideSearchContent() {
      let isHidden = searchOverlayArea.classList.contains('hidden')
      if (isHidden) {
        searchOverlayArea.classList.remove('hidden')
        document.body.classList.add('hidden')
        // inputArea.focus()
      } else {
        searchOverlayArea.classList.add('hidden')
        document.body.classList.remove('hidden')
      }
    }

    function blurSearchContent(e) {
      if (e.target === searchOverlayArea) {
        openOrHideSearchContent()
      }
    }

    document.querySelector("#search-icon").addEventListener("click", openOrHideSearchContent, false)
    document.querySelector("#search-close-icon").addEventListener("click", openOrHideSearchContent, false)
    searchOverlayArea.addEventListener("click", blurSearchContent, false)

    var searchFunc = function (path, search_id, content_id) {
      'use strict';
      var $input = document.getElementById(search_id);
      var $resultContent = document.getElementById(content_id);
      $resultContent.innerHTML = "<ul><span class='local-search-empty'>First search, index file loading, please wait...<span></ul>";
      $.ajax({
        // 0x01. load xml file
        url: path,
        dataType: "xml",
        success: function (xmlResponse) {
          // 0x02. parse xml file
          var datas = $("entry", xmlResponse).map(function () {
            return {
              title: $("title", this).text(),
              content: $("content", this).text(),
              url: $("url", this).text()
            };
          }).get();
          $resultContent.innerHTML = "";

          $input.addEventListener('input', function () {
            // 0x03. parse query to keywords list
            var str = '<ul class=\"search-result-list\">';
            var keywords = this.value.trim().toLowerCase().split(/[\s\-]+/);
            $resultContent.innerHTML = "";
            if (this.value.trim().length <= 0) {
              return;
            }
            // 0x04. perform local searching
            datas.forEach(function (data) {
              var isMatch = true;
              var content_index = [];
              if (!data.title || data.title.trim() === '') {
                data.title = "Untitled";
              }
              var orig_data_title = data.title.trim();
              var data_title = orig_data_title.toLowerCase();
              var orig_data_content = data.content.trim().replace(/<[^>]+>/g, "");
              var data_content = orig_data_content.toLowerCase();
              var data_url = data.url;
              var index_title = -1;
              var index_content = -1;
              var first_occur = -1;
              // only match artiles with not empty contents
              if (data_content !== '') {
                keywords.forEach(function (keyword, i) {
                  index_title = data_title.indexOf(keyword);
                  index_content = data_content.indexOf(keyword);

                  if (index_title < 0 && index_content < 0) {
                    isMatch = false;
                  } else {
                    if (index_content < 0) {
                      index_content = 0;
                    }
                    if (i == 0) {
                      first_occur = index_content;
                    }
                    // content_index.push({index_content:index_content, keyword_len:keyword_len});
                  }
                });
              } else {
                isMatch = false;
              }
              // 0x05. show search results
              if (isMatch) {
                str += "<li><a href='" + data_url + "' class='search-result-title'>" + orig_data_title + "</a>";
                var content = orig_data_content;
                if (first_occur >= 0) {
                  // cut out 100 characters
                  var start = first_occur - 20;
                  var end = first_occur + 80;

                  if (start < 0) {
                    start = 0;
                  }

                  if (start == 0) {
                    end = 100;
                  }

                  if (end > content.length) {
                    end = content.length;
                  }

                  var match_content = content.substr(start, end);

                  // highlight all keywords
                  keywords.forEach(function (keyword) {
                    var regS = new RegExp(keyword, "gi");
                    match_content = match_content.replace(regS, "<span class=\"search-keyword\">" + keyword + "</span>");
                  });

                  str += "<p class=\"search-result-abstract\">" + match_content + "...</p>"
                }
                str += "</li>";
              }
            });
            str += "</ul>";
            if (str.indexOf('<li>') === -1) {
              return $resultContent.innerHTML = "<ul><span class='local-search-empty'>No result<span></ul>";
            }
            $resultContent.innerHTML = str;
          });
        },
        error: function(xhr, status, error) {
          $resultContent.innerHTML = ""
          if (xhr.status === 404) {
            $resultContent.innerHTML = "<ul><span class='local-search-empty'>The search.xml file was not found, please refer to：<a href='https://github.com/zchengsite/hexo-theme-oranges#configuration' target='_black'>configuration</a><span></ul>";
          } else {
            $resultContent.innerHTML = "<ul><span class='local-search-empty'>The request failed, Try to refresh the page or try again later.<span></ul>";
          }
        }
      });
      $(document).on('click', '#search-close-icon', function() {
        $('#search-input').val('');
        $('#search-result').html('');
      });
    }

    var getSearchFile = function() {
        var path = "/search.xml";
        searchFunc(path, 'search-input', 'search-result');
    }
  </script>




        
  <div class="tools-bar-item theme-icon" id="switch-color-scheme">
    <a href="javascript: void(0)">
      <i id="theme-icon" class="iconfont icon-moon"></i>
    </a>
  </div>

  
<script src="/js/colorscheme.js"></script>





        
  
    <div class="share-icon tools-bar-item">
      <a href="javascript: void(0)" id="share-icon">
        <i class="iconfont iconshare"></i>
      </a>
      <div class="share-content hidden">
        
          <a class="share-item" href="https://twitter.com/intent/tweet?text=' + %E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86Note + '&url=' + https%3A%2F%2Fghostasky.github.io%2F2021%2F12%2F01%2F%25E7%25BC%2596%25E8%25AF%2591%25E5%258E%259F%25E7%2590%2586%2F + '" target="_blank" title="Twitter">
            <i class="iconfont icon-twitter"></i>
          </a>
        
        
          <a class="share-item" href="https://www.facebook.com/sharer.php?u=https://ghostasky.github.io/2021/12/01/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/" target="_blank" title="Facebook">
            <i class="iconfont icon-facebooksquare"></i>
          </a>
        
      </div>
    </div>
  
  
<script src="/js/shares.js"></script>



      </div>
    </div>
  </body>
</html>
